From 89fdf2860a6148c991bce1bb0e230745ce46ae8b Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Thu, 25 Jan 2007 12:28:47 +0000 Subject: [PATCH] [HVM] Wake up APs immediately during restore. From: Edwin Zhai Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/hvm.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 1c294ca236..44c6a4473d 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -170,12 +170,26 @@ void hvm_domain_destroy(struct domain *d) unmap_domain_page_global((void *)d->arch.hvm_domain.buffered_io_va); } +int hvm_load_cpu_ctxt(hvm_domain_context_t *h, void *opaque, int version) +{ + struct vcpu *v = opaque; + + if ( hvm_funcs.load_cpu_ctxt(h, opaque, version) < 0 ) + return -EINVAL; + + /* Auxiliary processors shoudl be woken immediately. */ + if ( test_and_clear_bit(_VCPUF_down, &v->vcpu_flags) ) + vcpu_wake(v); + + return 0; +} + int hvm_vcpu_initialise(struct vcpu *v) { int rc; hvm_register_savevm(v->domain, "xen_hvm_cpu", v->vcpu_id, 1, - hvm_funcs.save_cpu_ctxt, hvm_funcs.load_cpu_ctxt, + hvm_funcs.save_cpu_ctxt, hvm_load_cpu_ctxt, (void *)v); if ( (rc = vlapic_init(v)) != 0 ) -- 2.30.2